Method and apparatus for assigning motion vector predictor to sub-block without performing associated iteration of sub-block motion vector predictor determination flow

ABSTRACT

An exemplary motion vector predictor determination method includes the following steps: determining a motion vector predictor of a block according to motion vector data of neighbor units associated with the block; and utilizing a motion vector predictor computing circuit for assigning the motion vector predictor determined for the block to a first sub-block within the block. In addition, an exemplary motion vector predictor determination apparatus employing the exemplary motion vector predictor determination method is provided.

CROSS REFERENCE TO RELATED APPLICATION

This divisional application claims the benefit of U.S. patentapplication Ser. No. 14/753,004 filed Jun. 28, 2015, which claims thebenefit of U.S. provisional application No. 62/026,084 filed Jul. 18,2014. The entire contents of U.S. patent application Ser. No. 14/753,004and U.S. provisional application No. 62/026,084 are incorporated hereinby reference.

BACKGROUND

The disclosed embodiments of the present invention relate to video frameprocessing, and more particularly, to a method and apparatus forassigning a motion vector predictor to a sub-block within a block (e.g.,a 4×4 sub-block, a 8×4 sub-block or a 4×8 sub-block within an 8×8 block)without performing an associated iteration of a sub-block motion vectorpredictor determination flow.

The conventional video coding standards generally adopt a block basedcoding technique to exploit spatial and temporal redundancy. Forexample, the basic approach is to divide the whole source frame into aplurality of blocks, perform prediction on each block, transformresidues of each block using discrete cosine transform, and performquantization and entropy encoding. Besides, a reconstructed frame isgenerated in a coding loop to provide reference pixel data used forcoding following blocks. For certain video coding standards, in-loopfilter(s) may be used for enhancing the image quality of thereconstructed frame.

Motion vectors are used by motion compensation to reconstruct theinter-frames. With regard to a video decoder, a motion vector (MV) of acurrent block may be derived from a motion vector predictor (MVP) and amotion vector difference (MVD). For example, the computation of themotion vector may be expressed using the following equation:

MV=MVP+MVD,

where the MVP of the current block may be determined from motion vectordata of neighbor reconstructed blocks, and the MVD may be decoded from abitstream by a variable length decoder (VLD).

The performance of the motion vector computation depends on thecomputation of the motion vector predictor. Consider a case where asmall-sized block is further sub-divided into a plurality of sub-blocks,it may require extra time to find a motion vector predictor for each ofthe sub-blocks within the same block. This may induce considerabletiming overhead if an inter-frame is composed of a large number ofsub-blocks. Thus, there is a need for an innovative design which iscapable of effectively improving the speed of the MVP determination.

SUMMARY

In accordance with exemplary embodiments of the present invention, amethod and apparatus for assigning a motion vector predictor to asub-block within a block (e.g., a 4×4 sub-block, a 8×4 sub-block or a4×8 sub-block within an 8×8 block) without performing an associatediteration of a sub-block motion vector predictor determination flow areproposed to solve the above-mentioned problem.

According to a first aspect of the present invention, an exemplarymotion vector predictor determination method is disclosed. The exemplarymotion vector predictor determination method includes: determining amotion vector predictor of a block according to motion vector data ofneighbor units associated with the block; and assigning the motionvector predictor determined for the block to a first sub-block withinthe block.

According to a second aspect of the present invention, an exemplarymotion vector predictor determination apparatus is disclosed. Theexemplary motion vector predictor determination apparatus includes amotion vector predictor computing circuit. The motion vector predictorcomputing circuit is arranged to determine a motion vector predictor ofa block according to motion vector data of neighbor units associatedwith the block, and assign the motion vector predictor determined forthe block to a first sub-block within the block.

These and other objectives of the present invention will no doubt becomeobvious to those of ordinary skill in the art after reading thefollowing detailed description of the preferred embodiment that isillustrated in the various figures and drawings.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 is a diagram of a video decoder according to an embodiment of thepresent invention.

FIG. 2 is a diagram illustrating recursive partitioning of a superblockinto various sizes of mode information units.

FIG. 3 is a diagram illustrating an example of two VP9 MI units with thesame size and same reference frame.

FIG. 4 is a diagram illustrating an 8×8 block sub-divided into four 4×4sub-blocks according to an embodiment of the present invention.

FIG. 5 is a diagram illustrating a first case where the condition of thefirst lemma is satisfied for two 4×4 sub-blocks within the same 8×8block according to an embodiment of the present invention.

FIG. 6 is a diagram illustrating a second case where the condition ofthe first lemma is satisfied for two 4×4 sub-blocks within the same 8×8block according to an embodiment of the present invention.

FIG. 7 is a diagram illustrating a third case where the condition of thefirst lemma is satisfied for two 4×4 sub-blocks within the same 8×8block according to an embodiment of the present invention.

FIG. 8 is a diagram illustrating a fourth case where the condition ofthe first lemma is satisfied for two 4×4 sub-blocks within the same 8×8block according to an embodiment of the present invention.

FIG. 9 is a diagram illustrating a fifth case where the condition of thefirst lemma is satisfied for all 4×4 sub-blocks within the same 8×8block according to an embodiment of the present invention.

FIG. 10 is a diagram illustrating a case where the condition of thefirst lemma is satisfied for two 8×4 sub-blocks within the same 8×8block according to an embodiment of the present invention.

FIG. 11 is a diagram illustrating a case where the condition of thefirst lemma is satisfied for two 4×8 sub-blocks within the same 8×8block according to an embodiment of the present invention.

FIG. 12 is a diagram illustrating the best MVP determination performedfor blocks with different MI unit sizes not smaller than 8×8.

FIG. 13 is diagram illustrating a case where the second lemma isemployed when the MI unit size is smaller than 8×8 according toembodiments of the present invention.

FIG. 14 is a diagram illustrating a case where the second lemma isemployed and the condition of the first lemma is satisfied for two 4×4sub-blocks within the same 8×8 block according to an embodiment of thepresent invention.

FIG. 15 is a diagram illustrating another case where the second lemma isemployed and the condition of the first lemma is satisfied for two 4×4sub-blocks within the same 8×8 block according to an embodiment of thepresent invention.

FIG. 16 is a diagram illustrating a case where the second lemma isemployed and the condition of the first lemma is satisfied for all 4×4sub-blocks within the same 8×8 block according to an embodiment of thepresent invention.

FIG. 17 is a diagram illustrating a case where the second lemma isemployed and the condition of the first lemma is satisfied for two 4×4sub-blocks within the same 8×4 sub-block according to an embodiment ofthe present invention.

FIG. 18 is a diagram illustrating a case where the second lemma isemployed and the condition of the first lemma is satisfied for two 4×4sub-blocks within the same 4×8 sub-block according to an embodiment ofthe present invention.

FIG. 19 is a diagram illustrating a case where the second lemma isemployed, the condition of the first lemma is satisfied for two 4×4sub-blocks within the same 8×4 block and the condition of the firstlemma is satisfied for two 8×4 sub-blocks within the same 8×8 blockaccording to an embodiment of the present invention.

FIG. 20 is a diagram illustrating a case where the second lemma isemployed, the condition of the first lemma is satisfied for two 4×4sub-blocks within the same 4×8 block and the condition of the firstlemma is satisfied for two 4×8 sub-blocks within the same 8×8 blockaccording to an embodiment of the present invention.

DETAILED DESCRIPTION

Certain terms are used throughout the description and following claimsto refer to particular components. As one skilled in the art willappreciate, manufacturers may refer to a component by different names.This document does not intend to distinguish between components thatdiffer in name but not function. In the following description and in theclaims, the terms “include” and “comprise” are used in an open-endedfashion, and thus should be interpreted to mean “include, but notlimited to . . . ”. Also, the term “couple” is intended to mean eitheran indirect or direct electrical connection. Accordingly, if one deviceis coupled to another device, that connection may be through a directelectrical connection, or through an indirect electrical connection viaother devices and connections.

FIG. 1 is a diagram of a video decoder according to an embodiment of thepresent invention. The video decoder 100 may be part of an electronicdevice, such as a personal computer (e.g., a laptop computer or adesktop computer), a mobile phone, a tablet, or a wearable device. Thevideo decoder 100 is arranged for decoding a bitstream BS to generate avideo sequence composed of a plurality of consecutive decoded pictures(i.e., reconstructed pictures). At least a portion (i.e., part or all)of the video decoder 100 may be implemented in an integrated circuit(IC). To put it simply, any electronic device or electronic system usingthe proposed video decoder 100 falls within the scope of the presentinvention.

As shown in FIG. 1, the video decoder 100 includes an entropy decoder(e.g., a variable-length decoder (VLD) 102), an inverse scan circuit(denoted as “IS”) 104, an inverse quantization circuit (denoted as “IQ”)106, an inverse transform circuit (denoted as “IT”) 108, a reconstructcircuit 110, at least one in-loop filter (e.g., a de-blocking filter(DF) 112), a reference picture buffer 114, an intra prediction circuit(denoted as “IP”) 116, a motion vector (MV) calculation circuit 118, amotion compensation circuit (denoted as “MC”) 120, and an intra/interselection circuit 122. The reference picture buffer 114 may be anexternal storage device such as an off-chip dynamic random access memory(DRAM). In this embodiment, the MV calculation circuit 118 includes amotion vector predictor (MVP) determination apparatus 122 with animproved speed for the MVP determination. The MVP determinationapparatus 122 may include a checking circuit 124 and an MVP computingcircuit 126. Further details of the proposed MVP determination apparatus122 will be described later.

By way of example, but not limitation, the video decoder 100 may be usedto decode the incoming bitstream BS generated using a VP9 codingstandard that is an open and royalty-free video coding standard beingdeveloped by Google®. However, this is for illustrative purposes only,and is not meant to be a limitation of the present invention. Any videodecoder using the proposed video decoder structure, particularly theproposed MVP determination apparatus 122, falls within the scope of thepresent invention.

The VLD 102 is arranged to apply entropy decoding to the incomingbitstream BS for generating intra/inter mode information (e.g., motionvector differences of inter prediction) and residues. The residues aretransmitted to the reconstruct circuit 110 through being inverse scanned(which is performed at the inverse scan circuit 104), inverse quantized(which is performed at the inverse quantization circuit 106), andinverse transformed (which is performed at the inverse transform circuit108).

The inter/intra selection circuit 122 is used to decide a predictionmode of a current block to be decoded. For example, when the predictionmode of the current block is decided to be inter prediction, predictedpixels/samples generated from the motion compensation circuit 120 areoutput to the following decoding stage, such as a reconstruct circuit110. For another example, when the prediction mode of the current blockis decided to be intra prediction, predicted pixels/samples generatedfrom the intra prediction circuit 116 are output to the followingdecoding stage, such as the reconstruct circuit 110.

The reconstruct circuit 110 is arranged to combine a residue output ofthe inverse transform circuit 108 and a predicted pixel output of one ofintra prediction circuit 116 and motion compensation circuit 120 tothereby generate reconstructed pixels/samples of each block of a picture(i.e., a reconstructed/decoded picture). The de-blocking filter 112 isarranged to apply de-blocking filtering to the reconstructed picturegenerated from the reconstruct circuit 110, and then generate ade-blocked picture as a reference picture. The de-blocked referencepicture is stored into the reference picture buffer 114, and may bereferenced by the motion compensation circuit 118 to generate predictedpixels/samples.

VP9 divides one picture into 64×64-sized blocks that are calledsuperblocks. Superblocks of the picture are processed in raster order:left to right, top to bottom. In addition, VP9 supports quad-tree basedencoding. Hence, recursive partitioning may be employed to split eachsuperblock into one or more partitions (e.g., smaller-sized blocks) forfurther processing. FIG. 2 is a diagram illustrating recursivepartitioning of one superblock into various sizes of mode information(MI) units. For example, one superblock with the block size of 64×64 maybe split into one or more coding units (or called MI units), where thepartitions supported by VP9 coding standard may include squarepartitions, such as a 64×64-sized block, a 32×32-sized block, a16×16-sized block, a 8×8-sized block, a 4×4-sized block, and may furtherinclude non-square partitions, such as a 64×32-sized block, a32×64-sized block, 32×16-sized block, a 16×32-sized block, . . . , a4×8-sized block, a 8×4-sized block. Hence, the coding unit (MI unit)sizes may include 64×64, 32×32, 16×16, 8×8, 64×32, 32×64, 32×16, 16×32,. . . , 8×8, 4×8, 8×4, 4×4. Although “4×4” is the smallest partition,lots of information is stored at “8×8” granularity only. This causesblocks smaller than “8×8” to be handled as sort of a special case.

For any MI unit size, VP9 will perform a best MVP determination flow tofind one best MVP. In a case where an MI unit size is not smaller than8×8, the best MVP is directly referenced to determine an MV of a blockwith the MI unit size. In another case where an MI unit size is smallerthan 8×8, an additional sub-block MVP determination flow will beperformed to find one sub-block MVP for each sub-block within one 8×8block, where the best MVP and the sub-block MVP of a sub-block with theMI unit size may be involved in determining an MV of the sub-block. Forexample, when the MI unit size is 4×4, one 8×8 block is composed offoursquare sub-blocks (i.e., 4×4 sub-blocks). Hence, 4 iterations of thesub-block MVP determination flow are required by a conventional designto determine sub-block MVPs of the four 4×4 sub-blocks, respectively.For another example, when the MI unit size is 4×8, one 8×8 block iscomposed of two non-square sub-blocks (i.e., 4×8 sub-blocks). Hence, 2iterations of the sub-block MVP determination flow are required by theconventional design to determine sub-block MVPs of the two 4×8sub-blocks, respectively. For yet another example, when the MI unit sizeis 8×4, one 8×8 block is composed of two non-square sub-blocks (i.e.,8×4 sub-blocks). Hence, 2 iterations of the sub-block MVP determinationflow are required by the conventional design to determine sub-block MVPsof the two 8×4 sub-blocks, respectively. With regard to the conventionaldesign, the numbers of iterations for finding MVPs in different MI unitsizes are listed in the following table.

TABLE 1 MI Unit Size Best MVP Sub-block MVP Total MI ≥ 8 × 8 1 0 1 MI =4 × 8 1 2 3 MI = 8 × 4 1 2 3 MI = 4 × 4 1 4 5

For MI unit size <8×8, VP9 requires extra time to find the sub-blockMVPs compared to the condition of MI≥8×8. This might induce considerabletiming overhead if an inter-frame is composed of a large number of MIunits smaller than 8×8. The present invention therefore proposes usingthe MVP determination apparatus 122 to efficiently reduce the number ofiterations of the sub-block MVP determination flow.

In a first exemplary implementation, the MVP determination apparatus 122may be configured to reduce the number of iterations of the sub-blockMVP determination flow according to a first lemma. In accordance withthe first lemma, given two MI units mi_(a), mi_(b) with the same sizeand the same reference frame, where the MI units mi_(a), mi_(b) havenneighbor motion vector data nb_(ai), nb_(bi) and m MVPs mvp_(aj),mvp_(bj), respectively, mvp_(aj)=mvp_(bj) if nb_(ai)=nb_(bi). Note than0≤i<n, 0≤j<m, where n and m depend on the specification in each decodingformat. For example, n=8 and m=2 for VP9. FIG. 3 is a diagramillustrating an example of two VP9 MI units mi_(a) and mi_(b) with thesame size and the same reference frame. The MI unit mi_(a) has 8neighbor motion vector data nb_(a0)-nb_(a7), and the MI unit mi_(b) alsohas 8 neighbor motion vector data nb_(b0)-nb_(b7). The MVP resultdepends on the input MI unit and the neighbors of the MI unit. If thesizes of the MI units mi_(a), mi_(b) are identical, the reference framesof the MI units mi_(a), mi_(b) are identical (i.e., the neighbor motionvector data nb_(a0)-nb_(a7) and nb_(b0)-nb_(b7) are possessed by blocksin the same reference frame), and the neighbor motion vector data of theMI units mi_(a), mi_(b) are identical (i.e., nb_(ai)=nb_(bi)), then theMVP of the MI unit mi_(a) must be the same as that of the MI unitmi_(b).

In accordance with the first lemma, the MVP determination apparatus 122may speed up the iterations of the sub-block determination flow by earlytermination or may directly skip one or more iterations of the sub-blockdetermination flow, depending upon the actual design considerations. Inthe first exemplary implementation employing the first lemma, thechecking circuit 124 is arranged to check if motion vector data of atleast one first neighbor unit (e.g., 4×4 unit) adjacent to a block(e.g., 8×8 MI unit) and motion vector data of at least one secondneighbor unit (e.g., 4×4 unit) adjacent to the block (e.g., 8×8 MI unit)are identical to each other; and the motion vector predictor computingcircuit 126 is arranged to assign a motion vector predictor determinedfor a first sub-block within the block to a second sub-block within theblock when the checking circuit 124 determines that the motion vectordata of the at least one first neighbor unit is identical to the motionvector data of the at least one second neighbor unit, where the motionvector data of the at least one first neighbor unit is involved indetermining the motion vector predictor of the first sub-block, and themotion vector data of the at least one second neighbor unit is notinvolved in determining the motion vector predictor of the firstsub-block.

FIG. 4 is a diagram illustrating an 8×8 block sub-divided into four 4×4sub-blocks according to an embodiment of the present invention. Sinceeach of the sub-blocks blk0-blk3 within the same 8×8 block BK_(CUR) hasa size smaller than 8×8, a sub-block MVP determination flow will beperformed. As shown in FIG. 4, there are neighbor 8×8 blocks BK₀-BK₇(which are reconstructed blocks). Since the minimum size of thesub-block is 4×4, the neighbor motion vector data is stored in a 4×4neighbor unit. With regard to the 4×4 sub-block blk0, the associatedsub-block MVP may be determined on the basis of the motion vector datatop0 of the neighbor unit 401 in the neighbor block BK₀, the motionvector data left0 of the neighbor unit 411 in the neighbor block BK₁,the motion vector data nb₂ of the neighbor unit 422 in the neighborblock BK₂, the motion vector data nb₃ of the neighbor unit 423 in theneighbor block BK₃, the motion vector data nb₄ of the neighbor unit 424in the neighbor block BK₄, the motion vector data nb₅ of the neighborunit 425 in the neighbor block BK₅, the motion vector data nb₆ of theneighbor unit 426 in the neighbor block BK₆, and the motion vector datanb₇ of the neighbor unit 427 in the neighbor block BK₇. It should benoted that the neighbor units 401 and 411 are adjacent to the 8×8 blockBK_(CUR), where among the neighbor units of the 8×8 block BK_(CUR), theneighbor unit 401 is closest to the sub-block blk0 in the verticaldirection, and the neighbor unit 411 is closest to the sub-block blk0 inthe horizontal direction.

With regard to the 4×4 sub-block blk1, the associated sub-block MVP maybe determined on the basis of the motion vector data top1 of theneighbor unit 402 in the neighbor block BK₀, the motion vector dataleft0 of the neighbor unit 411 in the neighbor block BK₁, the motionvector data nb₂ of the neighbor unit 422 in the neighbor block BK₂, themotion vector data nb₃ of the neighbor unit 423 in the neighbor blockBK₃, the motion vector data nb₄ of the neighbor unit 424 in the neighborblock BK₄, the motion vector data nb₅ of the neighbor unit 425 in theneighbor block BK₅, the motion vector data nb₆ of the neighbor unit 426in the neighbor block BK₆, and the motion vector data nb₇ of theneighbor unit 427 in the neighbor block BK₇. It should be noted that theneighbor units 402 and 411 are adjacent to the 8×8 block BK_(CUR), whereamong the neighbor units of the 8×8 block BK_(CUR), the neighbor unit402 is closest to the sub-block blk1 in the vertical direction, and theneighbor unit 411 is closest to the sub-block blk1 in the horizontaldirection.

With regard to the 4×4 sub-block blk2, the associated sub-block MVP maybe determined on the basis of the motion vector data top0 of theneighbor unit 401 in the neighbor block BK₀, the motion vector dataleft1 of the neighbor unit 412 in the neighbor block BK₁, the motionvector data nb₂ of the neighbor unit 422 in the neighbor block BK₂, themotion vector data nb₃ of the neighbor unit 423 in the neighbor blockBK₃, the motion vector data nb₄ of the neighbor unit 424 in the neighborblock BK₄, the motion vector data nb₅ of the neighbor unit 425 in theneighbor block BK₅, the motion vector data nb₆ of the neighbor unit 426in the neighbor block BK₆, and the motion vector data nb₇ of theneighbor unit 427 in the neighbor block BK₇. It should be noted that theneighbor units 401 and 412 are adjacent to the 8×8 block BK_(CUR), whereamong the neighbor units of the 8×8 block BK_(CUR), the neighbor unit401 is closest to the sub-block blk2 in the vertical direction, and theneighbor unit 412 is closest to the sub-block blk2 in the horizontaldirection.

With regard to the 4×4 sub-block blk3, the associated sub-block MVP maybe determined on the basis of the motion vector data top1 of theneighbor unit 402 in the neighbor block BK₀, the motion vector dataleft1 of the neighbor unit 412 in the neighbor block BK₁, the motionvector data nb₂ of the neighbor unit 422 in the neighbor block BK₂, themotion vector data nb₃ of the neighbor unit 423 in the neighbor blockBK₃, the motion vector data nb₄ of the neighbor unit 424 in the neighborblock BK₄, the motion vector data nb₅ of the neighbor unit 425 in theneighbor block BK₅, the motion vector data nb₆ of the neighbor unit 426in the neighbor block BK₆, and the motion vector data nb₇ of theneighbor unit 427 in the neighbor block BK₇. It should be noted that theneighbor units 402 and 412 are adjacent to the 8×8 block BK_(CUR), whereamong the neighbor units of the 8×8 block BK_(CUR), the neighbor unit402 is closest to the sub-block blk2 in the vertical direction, and theneighbor unit 412 is closest to the sub-block blk2 in the horizontaldirection.

As can be seen from FIG. 4, the sub-block MVP determination for each ofthe sub-blocks blk0-blk3 refers to the same motion vector data nb₂-nb₇.Hence, the checking circuit 124 may simply check the motion vector datatop0 of the neighbor unit 401, the motion vector data top1 of theneighbor unit 402, the motion vector data left0 of the neighbor unit411, and the motion vector data left1 of the neighbor unit 412, wherethe neighbor units 401 and 402 are on the same side (i.e., top side) ofthe block BK_(CUR), and the neighbor units 411 and 412 are on the sameside (i.e., left side) of the block BK_(CUR). The MVP computing circuit126 may refer to a checking result generated from the checking circuit124 to determine whether the condition of the first lemma is satisfiedfor certain sub-blocks within the same block BK_(CUR). If the conditionof the first lemma is satisfied for certain sub-blocks within the sameblock BK_(CUR), one iteration of the sub-block MVP determination flowmay be actually performed by the MVP computing circuit 126 to compute asub-block MVP for one sub-block, and then the sub-block MVP determinefor the sub-block may be directly assigned to other sub-block(s).

FIG. 5 is a diagram illustrating a first case where the condition of thefirst lemma is satisfied for two 4×4 sub-blocks within the same 8×8block according to an embodiment of the present invention. As mentionedabove, the motion vector data top0 and the motion vector data left0 maybe involved in determining the sub-block MVP of the sub-block blk0, andthe motion vector data top1 and the same motion vector data left0 may beinvolved in determining the sub-block MVP of the sub-block blk1. Itshould be noted that the motion vector data top1 may not be involved indetermining the sub-block MVP of the sub-block blk0, and the motionvector data top0 may not be involved in determining the sub-block MVP ofthe sub-block blk1. However, when the checking circuit 124 determinesthat the motion vector data top0 and the motion vector data top1 areidentical to each other, the condition of the first lemma for thesub-blocks blk0 and blk1 is satisfied, which means that the sub-blockMVP of the sub-block blk1 should be the same as the sub-block MVP of thesub-block blk0.

In one exemplary design, the MVP computing circuit 126 may perform oneiteration of the sub-block MVP determination flow to compute thesub-block MVP of the sub-block blk0, and then assign the sub-block MVPdetermined for the sub-block blk0 to the sub-block blk1. Hence, anotheriteration of the sub-block MVP determination flow to compute thesub-block MVP of the sub-block blk1 can be skipped or early terminatedto reduce the computation load as well as the computation time.

In another exemplary design, the MVP computing circuit 126 may performone iteration of the sub-block MVP determination flow to compute thesub-block MVP of the sub-block blk1, and then assign the sub-block MVPdetermined for the sub-block blk1 to the sub-block blk0. Hence, anotheriteration of the sub-block MVP determination flow to compute the motionvector predictor of the sub-block blk0 can be skipped or earlyterminated to reduce the computation load as well as the computationtime.

FIG. 6 is a diagram illustrating a second case where the condition ofthe first lemma is satisfied for two 4×4 sub-blocks within the same 8×8block according to an embodiment of the present invention. As mentionedabove, the motion vector data top0 and the motion vector data left1 maybe involved in determining the sub-block MVP of the sub-block blk2, andthe motion vector data top1 and the same motion vector data left1 may beinvolved in determining the sub-block MVP of the sub-block blk3. Itshould be noted that the motion vector data top1 may not be involved indetermining the sub-block MVP of the sub-block blk2, and the motionvector data top1 may not be involved in determining the sub-block MVP ofthe sub-block blk2. However, when the checking circuit 124 determinesthat the motion vector data top0 and the motion vector data top1 areidentical to each other, the condition of the first lemma for thesub-blocks blk2 and blk3 is satisfied, which means that the sub-blockMVP of the sub-block blk3 should be the same as the sub-block MVP of thesub-block blk2.

In one exemplary design, the MVP computing circuit 126 may perform oneiteration of the sub-block MVP determination flow to compute thesub-block MVP of the sub-block blk2, and then assign the sub-block MVPdetermined for the sub-block blk2 to the sub-block blk3. Hence, anotheriteration of the sub-block MVP determination flow to compute thesub-block MVP of the sub-block blk3 can be skipped or early terminatedto reduce the computation load as well as the computation time.

In another exemplary design, the MVP computing circuit 126 may performone iteration of the sub-block MVP determination flow to compute thesub-block MVP of the sub-block blk3, and then assign the sub-block MVPdetermined for the sub-block blk3 to the sub-block blk2. Hence, anotheriteration of the sub-block MVP determination flow to compute thesub-block MVP of the sub-block blk2 can be skipped or early terminatedto reduce the computation load as well as the computation time.

FIG. 7 is a diagram illustrating a third case where the condition of thefirst lemma is satisfied for two 4×4 sub-blocks within the same 8×8block according to an embodiment of the present invention. As mentionedabove, the motion vector data top0 and the motion vector data left0 maybe involved in determining the sub-block MVP of the sub-block blk0, andthe motion vector data left1 and the same motion vector data top0 may beinvolved in determining the sub-block MVP of the sub-block blk2. Itshould be noted that the motion vector data left1 may not be involved indetermining the sub-block MVP of the sub-block blk0, and the motionvector data left0 may not be involved in determining the sub-block MVPof the sub-block blk2. However, when the checking circuit 124 determinesthat the motion vector data left0 and the motion vector data left1 areidentical to each other, the condition of the first lemma for thesub-blocks blk0 and blk2 is satisfied, which means that the sub-blockMVP of the sub-block blk2 should be the same as the sub-block MVP of thesub-block blk0.

In one exemplary design, the MVP computing circuit 126 may perform oneiteration of the sub-block MVP determination flow to compute thesub-block MVP of the sub-block blk0, and then assign the sub-block MVPdetermined for the sub-block blk0 to the sub-block blk2. Hence, anotheriteration of the sub-block MVP determination flow to compute thesub-block MVP of the sub-block blk2 can be skipped or early terminatedto reduce the computation load as well as the computation time.

In another exemplary design, the MVP computing circuit 126 may performone iteration of the sub-block MVP determination flow to compute thesub-block MVP of the sub-block blk2, and then assign the sub-block MVPdetermined for the sub-block blk2 to the sub-block blk0. Hence, anotheriteration of the sub-block MVP determination flow to compute thesub-block MVP of the sub-block blk0 can be skipped or early terminatedto reduce the computation load as well as the computation time.

FIG. 8 is a diagram illustrating a fourth case where the condition ofthe first lemma is satisfied for two 4×4 sub-blocks within the same 8×8block according to an embodiment of the present invention. As mentionedabove, the motion vector data top1 and the motion vector data left0 maybe involved in determining the sub-block MVP of the sub-block blk1, andthe motion vector data left1 and the same motion vector data top1 may beinvolved in determining the sub-block MVP of the sub-block blk3. Itshould be noted that the motion vector data left1 may not be involved indetermining the sub-block MVP of the sub-block blk1, and the motionvector data left0 may not be involved in determining the sub-block MVPof the sub-block blk3. However, when the checking circuit 124 determinesthat the motion vector data left0 and the motion vector data left1 areidentical to each other, the condition of the first lemma for thesub-blocks blk1 and blk3 is satisfied, which means that the sub-blockMVP of the sub-block blk3 should be the same as the sub-block MVP of thesub-block blk1.

In one exemplary design, the MVP computing circuit 126 may perform oneiteration of the sub-block MVP determination flow to compute thesub-block MVP of the sub-block blk1, and then assign the sub-block MVPdetermined for the sub-block blk1 to the sub-block blk3. Hence, anotheriteration of the sub-block MVP determination flow to compute thesub-block MVP of the sub-block blk3 can be skipped or early terminatedto reduce the computation load as well as the computation time.

In another exemplary design, the MVP computing circuit 126 may performone iteration of the sub-block MVP determination flow to compute thesub-block MVP of the sub-block blk3, and then assign the sub-block MVPdetermined for the sub-block blk3 to the sub-block blk1. Hence, anotheriteration of the sub-block MVP determination flow to compute thesub-block MVP of the sub-block blk1 can be skipped or early terminatedto reduce the computation load as well as the computation time.

FIG. 9 is a diagram illustrating a fifth case where the condition of thefirst lemma is satisfied for all 4×4 sub-blocks within the same 8×8block according to an embodiment of the present invention. When thechecking circuit 124 determines that the motion vector data top0 and themotion vector data top1 are identical to each other and the motionvector data left0 and the motion vector data left1 are identical to eachother, the condition of the first lemma for all sub-blocks blk0-blk3 issatisfied, which means that the sub-block MVPs of all sub-blocksblk0-blk3 should be the same. In one exemplary design, the MVP computingcircuit 126 may perform one iteration of the sub-block MVP determinationflow to compute the sub-block MVP of a selected sub-block (e.g., blk0)among the sub-blocks blk0-blk3, and then assign the sub-block MVPdetermined for the selected sub-block (e.g., blk0) to each of the restof the sub-blocks blk0-blk3. Hence, other iterations of the sub-blockMVP determination flow to compute the sub-block MVPs of the rest of thesub-block blk0-blk3 can be skipped or early terminated to reduce thecomputation load as well as the computation time.

When the MI unit size is 8×4, one 8×8 block is composed of two 8×4sub-blocks. Similarly, the checking circuit 124 may check the motionvector data of neighbor units (which are 4×4 units), and the MVPcomputing circuit 126 may refer to a checking result generated from thechecking circuit 124 to determine whether the condition of the firstlemma is satisfied for two 8×4 sub-blocks within the same 8×8 block. Ifthe condition of the first lemma is satisfied for two 8×4 sub-blockswithin the same 8×8 block, one iteration of the sub-block MVPdetermination flow is actually performed by the MVP computing circuit126 to compute a sub-block MVP for one 8×4 sub-block, and the sub-blockMVP determined for one 8×4 sub-block is assigned to the other 8×4sub-block.

FIG. 10 is a diagram illustrating a case where the condition of thefirst lemma is satisfied for two 8×4 sub-blocks within the same 8×8block according to an embodiment of the present invention. Each of the8×4 sub-blocks may be regarded as having two 4×4 sub-blocks. Forexample, the 8×4 sub-block BLK0 is composed of two 4×4 sub-blocks blk0and blk1, and the 8×4 sub-block BLK1 is composed of two 4×4 sub-blocksblk2 and blk3. In addition, the sub-block MVP of the 8×4 sub-block BLK0may be set by the sub-block MVP determined for the 4×4 sub-block blk0,and the sub-block MVP of the 8×4 sub-block BLK1 may be set by thesub-block MVP determined for the 4×4 sub-block blk2. Since the 4×4sub-blocks blk0 and blk1 are within the same 8×4 sub-block BLK0, thesub-block MVP determined for the 4×4 sub-block blk0 (i.e., the sub-blockMVP of the 8×4 sub-block BLK0) may also be used by the 4×4 sub-blockblk1. Similarly, since the 4×4 sub-blocks blk2 and blk3 are within thesame 8×4 sub-block BLK1, the sub-block MVP determined for the 4×4sub-block blk2 (i.e., the sub-block MVP of the 8×4 sub-block BLK1) mayalso be used by the 4×4 sub-block blk3.

As mentioned above, the motion vector data top0 and the motion vectordata left0 may be involved in determining the sub-block MV of thesub-block blk0, and the motion vector data left1 and the same motionvector data top0 may be involved in determining the sub-block MVP of thesub-block blk2. Hence, the motion vector data top0 and the motion vectordata left0 may be involved in determining the sub-block MVP of the 8×4sub-block BLK0, and the motion vector data left1 and the same motionvector data top0 may be involved in determining the sub-block MVP of the8×4 sub-block BLK1. When the checking circuit 124 determines that themotion vector data left0 and the motion vector data left1 are identicalto each other, the condition of the first lemma for the 8×4 sub-blocksBLK0 and BLK1 is satisfied, which means that the sub-block MVP of the8×4 sub-block BLK0 should be the same as the sub-block MVP of the 8×4sub-block BLK1.

In one exemplary design, the MVP computing circuit 126 may perform oneiteration of the sub-block MVP determination flow to compute thesub-block MVP of the 8×4 sub-block BLK0, and then assign the sub-blockMVP determined for the 8×4 sub-block BLK0 to the 8×4 sub-block BLK1.Hence, another iteration of the sub-block MVP determination flow tocompute the sub-block MVP of the 8×4 sub-block BLK1 can be skipped orearly terminated to reduce the computation load as well as thecomputation time.

In another exemplary design, the MVP computing circuit 126 may performone iteration of the sub-block MVP determination flow to compute thesub-block MVP of the 8×4 sub-block BLK1, and then assign the sub-blockMVP determined for the 8×4 sub-block BLK1 to the 8×4 sub-block BLK0.Hence, another iteration of the sub-block MVP determination flow tocompute the sub-block MVP of the 8×4 sub-block BLK0 can be skipped orearly terminated to reduce the computation load as well as thecomputation time.

FIG. 11 is a diagram illustrating a case where the condition of thefirst lemma is satisfied for two 4×8 sub-blocks within the same 8×8block according to an embodiment of the present invention. Each of the4×8 sub-blocks may be regarded as having two 4×4 sub-blocks. Forexample, the 4×8 sub-block BLK0′ is composed of two 4×4 sub-blocks blk0and blk2, and the 4×8 sub-block BLK1′ is composed of two 4×4 sub-blocksblk1 and blk3. In addition, the sub-block MVP of the 4×8 sub-block BLK0′may be set by the sub-block MVP determined for the 4×4 sub-block blk0,and the sub-block MVP of the 4×8 sub-block BLK1′ may be set by thesub-block MVP determined for the 4×4 sub-block blk1. Since the 4×4sub-blocks blk0 and blk2 are within the same 4×8 sub-block BLK0′, thesub-block MVP determined for the 4×4 sub-block blk0 (i.e., the sub-blockMVP of the 8×4 sub-block BLK0′) may also be used by the 4×4 sub-blockblk2. Similarly, since the 4×4 sub-blocks blk1 and blk3 are within thesame 4×8 sub-block BLK1′, the sub-block MVP determined for the 4×4sub-block blk1 (i.e., the sub-block MVP of the 4×8 sub-block BLK1′) mayalso be used by the 4×4 sub-block blk3.

As mentioned above, the motion vector data top0 and the motion vectordata left0 may be involved in determining the sub-block MVP of thesub-block blk0, and the motion vector data top1 and the same motionvector data left0 may be involved in determining the sub-block MVP ofthe sub-block blk1. In other words, the motion vector data top0 and themotion vector data left0 may be involved in determining the sub-blockMVP of the 4×8 sub-block BLK0′, and the motion vector data top1 and thesame motion vector data left0 may be involved in determining thesub-block MVP of the 4×8 sub-block BLK1′. When the checking circuit 124determines that the motion vector data top0 and the motion vector datatop1 are identical to each other, the condition of the first lemma forthe 4×8 sub-blocks BLK0′ and BLK1′ is satisfied, which means that thesub-block MVP of the 4×8 sub-block BLK0′ should be the same as thesub-block MVP of the 4×8 sub-block BLK1′.

In one exemplary design, the MVP computing circuit 126 may perform oneiteration of the sub-block MVP determination flow to compute thesub-block MVP of the 4×8 sub-block BLK0′, and then assign the sub-blockMVP determined for the 4×8 sub-block BLK0′ to the 4×8 sub-block BLK1′.Hence, another iteration of the sub-block MVP determination flow tocompute the sub-block MVP of the 4×8 sub-block BLK1′ can be skipped orearly terminated to reduce the computation load as well as thecomputation time.

In another exemplary design, the MVP computing circuit 126 may performone iteration of the sub-block MVP determination flow to compute thesub-block MVP of the 4×8 sub-block BLK1′, and then assign the sub-blockMVP determined for the 4×8 sub-block BLK1′ to the 4×8 sub-block BLK0′.Hence, another iteration of the sub-block MVP determination flow tocompute the sub-block MVP of the 4×8 sub-block BLK0′ can be skipped orearly terminated to reduce the computation load as well as thecomputation time.

With regard to the aforementioned first exemplary implementation thatemploys the first lemma to efficiently improve the speed of the MVPdetermination, the numbers of iterations of sub-block MVP determinationflow under different MI unit sizes and different cases are listed in thefollowing table.

TABLE 2 Proposed Proposed Design Design Proposed (Case 1: (Case 2:Design top0 = top1 & left0 = left1 (Case 3: MI Unit Conventional left0 ≠& top0 = top1 & Size design left1) top0 ≠ top1) left0 = left1) MI = 4 ×8 2 1 2 1 MI = 8 × 4 2 2 1 1 MI = 4 × 4 4 2 2 1

In a second exemplary implementation, the MVP determination apparatus122 may be configured to reduce the number of iterations of thesub-block MVP determination flow according to a second lemma. Inaccordance with the second lemma, given one VP9 MI unit mi with an MIunit size <8×8, the best MVPs of the MI unit mi are mvp_(besti) and thesub-block MVPs of the MI unit mi are mvp_(blkji), the sub-block MVPmvp_(blk3i) must be equivalent to the best MVP mvp_(besti). Note that0≤i<2 and 0≤j<4 for VP9.

When the MI unit size is not smaller than 8×8, a best MVP is determinedfor a block, where the best MVP is used to calculate an MV for the blockwith the MI unit size ≥8×8. When the MI unit size is smaller than 8×8, abest MVP is determined for each sub-block, and then at least oneiteration of the sub-block MVP determination flow is performed todetermine one sub-block MVP for each sub-block, where the best MVP andthe sub-block MVP of each sub-block with the MI unit size <8×8 are usedto calculate an MV for each sub-block. Since the minimum size of asub-block is 4×4, the neighbors are stored in 4×4 units. However, theminimum MI unit size for the best MVP determination is 8×8. FIG. 12 is adiagram illustrating the best MVP determination performed for blockswith different MI unit sizes not smaller than 8×8. As shown insub-diagram (A) of FIG. 12, the MI unit size is 16×8. The best MVPdetermination takes the 4×4 sub-block blk3 as a base, and refers tomotion vector data of 4×4 neighbor units, including the motion vectordata top1 of one top 4×4 neighbor unit (which is adjacent to the 16×8block and closest to the 4×4 sub-block blk3 in the vertical direction)and the motion vector data left1 of one left 4×4 neighbor unit (which isadjacent to the 16×8 block and closest to the 4×4 sub-block blk3 in thehorizontal direction). As shown in sub-diagram (B) of FIG. 12, the MIunit size is 8×8. Similarly, the best MVP determination takes the 4×4sub-block blk3 as a base, and refers to motion vector data of 4×4neighbor units, including the motion vector data top1 of one top 4×4neighbor unit (which is adjacent to the 8×8 block and closest to the 4×4sub-block blk3 in the vertical direction) and the motion vector dataleft1 of one left 4×4 neighbor unit (which is adjacent to the 8×8 blockand closest to the 4×4 sub-block blk3 in the horizontal direction).

However, when the MI unit size is smaller than 8×8, the best MVPs forall sub-blocks within the same 8×8 block are the same. Specifically, thebest MVP determined for an 8×8 block (which has the minimum MI unit sizefor the best MVP determination) can be used as the best MVP for each ofthe sub-blocks (e.g., four 4×4 sub-blocks, or two 4×8 sub-blocks, or two8×4 sub-blocks) within the same 8×8 block. It should be noted that thebest MVP of one 8×8 block (e.g., BK_(CUR) shown in FIG. 4) may bedetermined on the basis of the motion vector data top1 of the neighborunit 402 in the neighbor block the motion vector data left1 of theneighbor unit 412 in the neighbor block BK₁, the motion vector data nb₂of the neighbor unit 422 in the neighbor block BK₂, the motion vectordata nb₃ of the neighbor unit 423 in the neighbor block BK₃, the motionvector data nb₄ of the neighbor unit 424 in the neighbor block BK₄, themotion vector data nb₅ of the neighbor unit 425 in the neighbor blockBK₅, the motion vector data nb₆ of the neighbor unit 426 in the neighborblock BK₆, and the motion vector data nb₇ of the neighbor unit 427 inthe neighbor block BK₇. Hence, the best MVP determined for one 8×8 blockis the same as the sub-block MVP determined for the 4×4 sub-block blk3within this 8×8 block. With regard to the second exemplaryimplementation employing the second lemma, the MVP determinationapparatus 122 may assign the best MVP determined for one 8×8 block toone 4×4 sub-block (e.g., blk3) within the 8×8 block.

FIG. 13 is diagram illustrating a case where the second lemma isemployed when the MI unit size is smaller than 8×8 according toembodiments of the present invention. In this example, the MI unit sizeis 4×4, and the sub-block MVP of the 4×4 sub-block blk3 within an 8×8block can be directly set by the best MVP determined for the 8×8 block.Hence, an iteration of the sub-block MVP determination flow to computethe sub-block MVP of the 4×4 sub-block blk3 can be skipped or earlyterminated to reduce the computation load as well as the computationtime.

With regard to the second exemplary implementation that employs thesecond lemma to efficiently improve the speed of the MVP determination,the numbers of iterations of sub-block MVP determination flow underdifferent MI unit sizes are listed in the following table.

TABLE 3 MI Unit Conventional Proposed Size design Design MI = 4 × 8 2 2MI = 8 × 4 2 2 MI = 4 × 4 4 3

It should be noted that the first lemma and the second lemma can beexploited simultaneously to reduce the number of iterations of sub-blockMVP determination flow in a more efficient manner. This also fallswithin the scope of the present invention.

FIG. 14 is a diagram illustrating a case where the second lemma isemployed and the condition of the first lemma is satisfied for two 4×4sub-blocks within the same 8×8 block according to an embodiment of thepresent invention. When the checking circuit 124 determines that themotion vector data top0 and the motion vector data top1 are identical toeach other, the condition of the first lemma for the 4×4 sub-blocks blk2and blk3 is satisfied, which means that the sub-block MVP of thesub-block blk2 should be the same as the sub-block MVP of the sub-blockblk3. Further, when the second lemma is employed, the best MVP of an 8×8block should be the same as the sub-block MVP of the 4×4 sub-block blk3within the 8×8 block. Hence, two iterations of the sub-block MVPdetermination flow to compute the sub-block MVPs of the 4×4 sub-blocksblk2 and blk3 can be skipped or early terminated to reduce thecomputation load as well as the computation time.

FIG. 15 is a diagram illustrating another case where the second lemma isemployed and the condition of the first lemma is satisfied for two 4×4sub-blocks within the same 8×8 block according to an embodiment of thepresent invention. When the checking circuit 124 determines that themotion vector data left0 and the motion vector data left1 are identicalto each other, the condition of the first lemma for the 4×4 sub-blocksblk1 and blk3 is satisfied, which means that the sub-block MVP of thesub-block blk3 should be the same as the sub-block MVP of the sub-blockblk1. Further, when the second lemma is employed, the best MVP of an 8×8block should be the same as the sub-block MVP of the 4×4 sub-block blk3within the 8×8 block. Hence, two iterations of the sub-block MVPdetermination flow to compute the sub-block MVPs of the 4×4 sub-blocksblk1 and blk3 can be skipped or early terminated to reduce thecomputation load as well as the computation time.

FIG. 16 is a diagram illustrating a case where the second lemma isemployed and the condition of the first lemma is satisfied for all 4×4sub-blocks within the same 8×8 block according to an embodiment of thepresent invention. When the checking circuit 124 determines that themotion vector data top0 and the motion vector data top1 are identical toeach other and the motion vector data left0 and the motion vector dataleft1 are identical to each other, the condition of the first lemma forall sub-blocks blk0-blk3 is satisfied, which means that the sub-blockMVPs of the sub-blocks blk0-blk3 should be the same. Further, when thesecond lemma is employed, the best MVP of an 8×8 block should be thesame as the sub-block MVP of the sub-block blk3 within the 8×8 block.Hence, four iterations of the sub-block MVP determination flow tocompute the sub-block MVPs of the 4×4 sub-blocks blk0-blk3 can beskipped or early terminated to reduce the computation load as well asthe computation time.

FIG. 17 is a diagram illustrating a case where the second lemma isemployed and the condition of the first lemma is satisfied for two 4×4sub-blocks within the same 8×4 sub-block according to an embodiment ofthe present invention. In this example, the MI unit size is 8×4. Whenthe checking circuit 124 determines that the motion vector data top0 andthe motion vector data top1 are identical to each other, the conditionof the first lemma for the 4×4 sub-blocks blk2 and blk3 within the 8×4sub-block BLK1 is satisfied, which means that the sub-block MVP of thesub-block blk2 should be the same as the sub-block MVP of the sub-blockblk3. Further, when the second lemma is employed, the best MVP of an 8×8block should be the same as the sub-block MVP of the 4×4 sub-block blk3within the 8×8 block. It should be noted that the sub-block MVP of the8×4 sub-block BLK1 is set by the sub-block MVP of the 4×4 sub-block blk2within the 8×4 sub-block BLK1. Hence, one iteration of the sub-block MVPdetermination flow to compute the sub-block MVP of the 8×4 sub-blockBLK1 can be skipped or early terminated to reduce the computation loadas well as the computation time.

FIG. 18 is a diagram illustrating a case where the second lemma isemployed and the condition of the first lemma is satisfied for two 4×4sub-blocks within the same 4×8 sub-block according to an embodiment ofthe present invention. In this example, the MI unit size is 4×8. Whenthe checking circuit 124 determines that the motion vector data left0and the motion vector data left1 are identical to each other, thecondition of the first lemma for the 4×4 sub-blocks blk1 and blk3 withinthe same 4×8 sub-block BLK1′ is satisfied, which means that thesub-block MVP of the sub-block blk1 should be the same as the sub-blockMVP of the sub-block blk3. Further, when the second lemma is employed,the best MVP of an 8×8 block should be the same as the sub-block MVP ofthe 4×4 sub-block blk3 within the 8×8 block. It should be noted that thesub-block MVP of the 4×8 sub-block BLK1′ is set by the sub-block MVP ofthe 4×4 sub-block blk1 within the 4×8 sub-block BLK1′. Hence, oneiteration of the sub-block MVP determination flow to compute thesub-block MVP of the 4×8 sub-block BLK1′ can be skipped or earlyterminated to reduce the computation load as well as the computationtime.

FIG. 19 is a diagram illustrating a case where the second lemma isemployed, the condition of the first lemma is satisfied for two 4×4sub-blocks within the same 8×4 block and the condition of the firstlemma is satisfied for two 8×4 sub-blocks within the same 8×8 blockaccording to an embodiment of the present invention. In this example,the MI unit size is 8×4. When the checking circuit 124 determines thatthe motion vector data left0 and the motion vector data left1 areidentical to each other, the condition of the first lemma for the 8×4sub-blocks BLK0 and BLK1 is satisfied, which means that the sub-blockMVP of the 8×4 sub-block BLK1 (i.e., the sub-block MVP of the 4×4sub-block blk2) should be the same as the sub-block MVP of the 8×4sub-block BLK0 (i.e., the sub-block MVP of the 4×4 sub-block blk0). Whenthe checking circuit 124 determines that the motion vector data top0 andthe motion vector data top1 are identical to each other, the conditionof the first lemma for the 4×4 sub-blocks blk2 and blk3 within the same8×4 sub-block BLK1 is satisfied, which means that the sub-block MVP ofthe sub-block blk2 should be the same as the sub-block MVP of thesub-block blk3. Further, when the second lemma is employed, the best MVPof an 8×8 block should be the same as the sub-block MVP of the 4×4sub-block blk3 within the 8×8 block. Hence, two iterations of thesub-block MVP determination flow to compute the sub-block MVPs of the8×4 sub-blocks BLK0 and BLK1 can be skipped or early terminated toreduce the computation load as well as the computation time.

FIG. 20 is a diagram illustrating a case where the second lemma isemployed, the condition of the first lemma is satisfied for two 4×4sub-blocks within the same 4×8 block and the condition of the firstlemma is satisfied for two 4×8 sub-blocks within the same 8×8 blockaccording to an embodiment of the present invention. In this example,the MI unit size is 4×8. When the checking circuit 124 determines thatthe motion vector data top0 and the motion vector data top1 areidentical to each other, the condition of the first lemma for the 4×8sub-blocks BLK0′ and BLK1′ is satisfied, which means that the sub-blockMVP of the 4×8 sub-block BLK1′ (i.e., the sub-block MVP of the 4×4sub-block blk1) should be the same as the sub-block MVP of the 4×8sub-block BLK0′ (i.e., the sub-block MVP of the 4×4 sub-block blk0).When the checking circuit 124 determines that the motion vector dataleft0 and the motion vector data left1 are identical to each other, thecondition of the first lemma for the 4×4 sub-blocks blk1 and blk3 withinthe same 4×8 sub-block BLK1′ is satisfied, which means that thesub-block MVP of the sub-block blk1 should be the same as the sub-blockMVP of the sub-block blk3. Further, when the second lemma is employed,the best MVP of an 8×8 block should be the same as the sub-block MVP ofthe 4×4 sub-block blk3 within the 8×8 block. Hence, two iterations ofthe sub-block MVP determination flow to compute the sub-block MVPs ofthe 4×8 sub-blocks BLK0′ and BLK1′ can be skipped or early terminated toreduce the computation load as well as the computation time.

With regard to a third exemplary implementation that employs both of thefirst lemma and the second lemma to more efficiently improve the speedof the MVP determination, the numbers of iterations of sub-block MVPdetermination flow under different MI unit sizes and different cases arelisted in the following table.

TABLE 4 Proposed Proposed Design Design Proposed (Case 1: (Case 2:Design top0 = top1 & left0 = left1 (Case 3: MI Unit Conventional 1eft0 ≠& top0 = top1 & Size design left1) top0 ≠ top1) left0 = left1) MI = 4 ×8 2 1 1 0 MI = 8 × 4 2 1 1 0 MI = 4 × 4 4 1 1 0

Those skilled in the art will readily observe that numerousmodifications and alterations of the device and method may be made whileretaining the teachings of the invention. Accordingly, the abovedisclosure should be construed as limited only by the metes and boundsof the appended claims.

What is claimed is:
 1. A motion vector predictor determination methodcomprising: determining a motion vector predictor of a block accordingto motion vector data of neighbor units associated with the block; andutilizing a motion vector predictor computing circuit for assigning themotion vector predictor determined for the block to a first sub-blockwithin the block.
 2. The method of claim 1, wherein the neighbor unitscomprise at least one first neighbor unit adjacent to the block and atleast one second neighbor unit adjacent to the block; and the methodfurther comprises: checking if motion vector data of the at least onefirst neighbor unit and motion vector data of the at least one secondneighbor unit are identical to each other; and when a checking resultindicates that the motion vector data of the at least one first neighborunit is identical to the motion vector data of the at least one secondneighbor unit, assigning the motion vector predictor determined for theblock to a second sub-block within the block; wherein the motion vectordata of the at least first neighbor unit is involved in determining themotion vector predictor of the block, and the motion vector data of theat least one second neighbor unit is not involved in determining themotion vector predictor of the block.
 3. The method of claim 2, whereinone of the at least one first neighbor unit and one of the at least onesecond neighbor unit are on a same side of the block.
 4. The method ofclaim 3, wherein the same side is a top side of the block.
 5. The methodof claim 3, wherein the same side is a left side of the block.
 6. Themethod of claim 2, wherein the first sub-block and the second sub-blockhave a same size; and the at least one first neighbor unit and the atleast one second neighbor unit are in a same frame.
 7. The method ofclaim 6, wherein the at least one first neighbor unit and the at leastone second neighbor unit have a same size; and a size of each of thefirst sub-block and the second sub-block is equal to a size of each ofthe at least one first neighbor unit and the at least one secondneighbor unit.
 8. The method of claim 7, wherein each of the firstsub-block, the second sub-block, the at least one first neighbor unitand the at least one second neighbor unit is square.
 9. The method ofclaim 6, wherein the at least one first neighbor unit and the at leastone second neighbor unit have a same size; and a size of each of thefirst sub-block and the second sub-block is larger than a size of eachof the at least one first neighbor unit and the at least one secondneighbor unit.
 10. The method of claim 9, wherein each of the firstsub-block and the second sub-block is non-square, and each of the atleast one first neighbor unit and the at least one second neighbor unitis square.
 11. A motion vector predictor determination apparatuscomprising: a motion vector predictor computing circuit, arranged todetermine a motion vector predictor of a block according to motionvector data of neighbor units associated with the block, and assign themotion vector predictor determined for the block to a first sub-blockwithin the block.
 12. The apparatus of claim 11, wherein the neighborunits comprise at least one first neighbor unit adjacent to the blockand at least one second neighbor unit adjacent to the block; and theapparatus further comprises: a checking circuit, arranged to check ifmotion vector data of the at least one first neighbor unit and motionvector data of the at least one second neighbor unit are identical toeach other; wherein the motion vector predictor computing circuit isfurther arranged to assign the motion vector predictor determined forthe block to a second sub-block within the block when the checkingcircuit determines that the motion vector data of the at least one firstneighbor unit is identical to the motion vector data of the at least onesecond neighbor unit, where the motion vector data of the at least firstneighbor unit is involved in determining the motion vector predictor ofthe block, and the motion vector data of the at least one secondneighbor unit is not involved in determining the motion vector predictorof the block.